Getting the data
# don't read again, we've already got it
if (!exists('customers_org')){
readData(customers_file, subscriptions_file, gdp_file)
}
Optionally sample the data for faster development
customers <- customers_org %>%
processCustomers(SAMPLE_DATA, fraction_sample)
subscriptions <- subscriptions_org %>%
# Removing customers not in the customers set
filter(customerid %in% customers$customerid) %>%
processSubscriptions() %>%
joinProcessCustomers(customers, age_to_join_sitevers = 5) %>%
joinProcessGDP(gdp) %>%
concatCategrories() %>%
mutate_if(is.character, funs(as.factor))
summary(subscriptions)
customerid subscriptionid revenuecurr billingcurrency startmonth endmonth months status num_previous_months
Min. : 10006 Min. : 154 Min. : 0.8 DKK :668540 Min. :2003-12-01 Min. :2004-03-01 Min. : 1.000 active:1840623 Min. : 0.00
1st Qu.: 1090111 1st Qu.: 5121661 1st Qu.: 15.0 EUR :532574 1st Qu.:2012-12-01 1st Qu.:2013-04-01 1st Qu.: 1.000 churn : 442541 1st Qu.: 1.00
Median : 5319576 Median :14784414 Median : 63.2 USD :505039 Median :2014-12-01 Median :2015-03-01 Median : 3.000 Median : 8.00
Mean : 8044651 Mean :14612438 Mean : 1382.8 NOK :232550 Mean :2014-05-02 Mean :2014-08-18 Mean : 3.532 Mean : 15.34
3rd Qu.:14410806 3rd Qu.:24044332 3rd Qu.: 174.0 SEK :159059 3rd Qu.:2016-07-01 3rd Qu.:2016-11-01 3rd Qu.: 3.000 3rd Qu.: 22.00
Max. :23917123 Max. :29424356 Max. :2823000.0 GBP : 96217 Max. :2018-03-01 Max. :2020-03-01 Max. :24.000 Max. :162.00
(Other): 89185
num_previous_subs num_previous_months_binned firstpaiddate channelcat paymentperiodchosenatstart currency marketname siteverkey firstpaidmonth
Min. : 0.000 Min. : 0.00 Min. :2003-12-15 paid :1518216 Min. :-1.000 DKK :668679 DK :669017 US :898770 Min. :2003-12-01
1st Qu.: 1.000 1st Qu.: 1.00 1st Qu.:2010-12-12 viral: 764948 1st Qu.: 1.000 USD :543314 NO :232881 DK :637715 1st Qu.:2010-12-01
Median : 3.000 Median : 8.00 Median :2013-06-23 Median : 3.000 EUR :537318 US :188723 NO :207482 Median :2013-06-01
Mean : 6.028 Mean :14.72 Mean :2013-01-16 Mean : 4.237 NOK :232433 SE :159905 SE :144173 Mean :2013-01-02
3rd Qu.: 8.000 3rd Qu.:26.00 3rd Qu.:2015-08-19 3rd Qu.: 3.000 SEK :158858 FR :146174 FR : 96298 3rd Qu.:2015-08-01
Max. :68.000 Max. :39.00 Max. :2018-03-26 Max. :24.000 GBP : 93847 (Other):886057 NL : 79701 Max. :2018-03-01
(Other): 48715 NA's : 407 (Other):219025
firstdevice segment isquickpurchase productversion isfreemium model31224 market_category siteverkey_cat siteverkey_cat2
desktop: 175519 business: 407581 Min. :0.0000 v_3 : 898821 Min. :0.0000 pre-changes :1894566 DK :669017 ORG:1384394 MUT:1311010
mobile : 70157 other : 97467 1st Qu.:0.0000 v_4 : 138959 1st Qu.:0.0000 3-12m-v1-2015-11-30 : 145756 LowGeneric:265151 SS : 898770 ORG: 402042
NA's :2037488 personal: 293518 Median :1.0000 v_older:1245078 Median :0.0000 3-12-24m-2016-08-25 : 144551 NO :232881 SS : 570112
NA's :1484598 Mean :0.5282 NA's : 306 Mean :0.2547 12m-v2-2015-05-16 : 71866 US :188723
3rd Qu.:1.0000 3rd Qu.:1.0000 ex-subscriptionplanpaywallexpand: 8305 SE :159905
Max. :1.0000 Max. :1.0000 ex-uglyjerry12mswitch : 5388 FR :146174
NA's :306 NA's :306 (Other) : 12732 (Other) :621313
chosen_subs_length gdppercapita gdppercapita_scaled subscription_summary subscription_summary_no_market
1 : 56935 Min. : 218.3 Min. :-2.4437 mc-DK_ssc-MUT_ac-39_m-3_ccsl-gen : 109608 ssc-MUT_ac-26_m-3_ccsl-gen: 203834
-1 : 11140 1st Qu.: 42013.3 1st Qu.:-0.4694 mc-DK_ssc-MUT_ac-26_m-3_ccsl-gen : 77645 ssc-MUT_ac-39_m-3_ccsl-gen: 170628
12 : 51360 Median : 55670.9 Median : 0.1758 mc-LowGeneric_ssc-SS_ac-0_m-1_ccsl-3: 60652 ssc-SS_ac-0_m-1_ccsl-3 : 161585
24 : 6897 Mean : 51950.1 Mean : 0.0000 mc-DK_ssc-ORG_ac-0_m-3_ccsl-gen : 58390 ssc-ORG_ac-0_m-3_ccsl-gen : 132393
3 : 204319 3rd Qu.: 60637.3 3rd Qu.: 0.4104 mc-DK_ssc-MUT_ac-38_m-3_ccsl-gen : 51997 ssc-MUT_ac-8_m-3_ccsl-gen : 120482
gen:1952513 Max. :108422.5 Max. : 2.6676 mc-DK_ssc-ORG_ac-3_m-3_ccsl-gen : 41933 ssc-MUT_ac-38_m-3_ccsl-gen: 111133
(Other) :1882939 (Other) :1383109
subscriptions_with_target <- subscriptions %>%
# restrict to a recent expiry window
filter(endmonth >= begin_train_window & endmonth < end_window) %>%
mutate(num_previous_months_binned_fct = as.factor(num_previous_months_binned)) %>%
mutate(set_type = as.factor(if_else(endmonth >= begin_validation_window, 'validation', 'training'))) %>%
mutate(churnind = ifelse(status == 'churn', 1, 0))
Prepare churntable that we want to predicdt
churntable <- subscriptions_with_target %>%
group_by(set_type, siteverkey_cat2, market_category, months, num_previous_months_binned, chosen_subs_length, subscription_summary_no_market) %>%
summarise(num_obs = n(),
churned = sum(churnind)) %>%
group_by(set_type) %>%
mutate(churn_rate = churned / num_obs,
renew_rate = 1 - churn_rate,
month_churn = 1 - renew_rate ^ (1/as.double(months)),
log_month_churn = log(month_churn),
weight = num_obs / sum(num_obs))
# NB! Does this introduce a bad bias ????
churntable_no_zeros <- churntable %>%
filter(churn_rate > 0)
summary(churntable)
set_type siteverkey_cat2 market_category months num_previous_months_binned chosen_subs_length subscription_summary_no_market num_obs
training :852 MUT:639 SE :109 Min. : 1.00 Min. : 0.00 1 : 79 ssc-MUT_ac-11_m-1_ccsl-gen : 36 Min. : 1.0
validation:745 ORG:267 DK :107 1st Qu.: 1.00 1st Qu.: 1.00 -1 : 62 ssc-MUT_ac-11_m-3_ccsl-gen : 36 1st Qu.: 6.0
SS :691 NL :105 Median : 3.00 Median : 3.00 12 : 97 ssc-MUT_ac-14_m-12_ccsl-gen: 36 Median : 60.0
FI :101 Mean : 4.54 Mean :10.13 24 : 33 ssc-MUT_ac-14_m-1_ccsl-gen : 36 Mean : 220.9
BE : 99 3rd Qu.:12.00 3rd Qu.:14.00 3 : 109 ssc-MUT_ac-14_m-3_ccsl-gen : 36 3rd Qu.: 210.0
LowGeneric: 97 Max. :12.00 Max. :39.00 gen:1217 ssc-MUT_ac-26_m-12_ccsl-gen: 36 Max. :8401.0
(Other) :979 (Other) :1381
churned churn_rate renew_rate month_churn log_month_churn weight
Min. : 0.00 Min. :0.00000 Min. :0.0000 Min. :0.00000 Min. : -Inf Min. :4.330e-06
1st Qu.: 1.00 1st Qu.:0.06289 1st Qu.:0.6667 1st Qu.:0.02245 1st Qu.:-3.796 1st Qu.:3.285e-05
Median : 9.00 Median :0.16667 Median :0.8333 Median :0.05620 Median :-2.879 Median :3.550e-04
Mean : 53.58 Mean :0.23547 Mean :0.7645 Mean :0.14082 Mean : -Inf Mean :1.252e-03
3rd Qu.: 35.00 3rd Qu.:0.33333 3rd Qu.:0.9371 3rd Qu.:0.12738 3rd Qu.:-2.061 3rd Qu.:1.221e-03
Max. :5317.00 Max. :1.00000 Max. :1.0000 Max. :1.00000 Max. : 0.000 Max. :5.028e-02
summary(churntable_no_zeros)
set_type siteverkey_cat2 market_category months num_previous_months_binned chosen_subs_length subscription_summary_no_market num_obs
training :724 MUT:619 LowGeneric: 89 Min. : 1.000 Min. : 0.00 1 : 44 ssc-MUT_ac-11_m-1_ccsl-gen : 36 Min. : 1.0
validation:623 ORG:153 SE : 89 1st Qu.: 1.000 1st Qu.: 1.00 -1 : 55 ssc-MUT_ac-11_m-3_ccsl-gen : 36 1st Qu.: 21.5
SS :575 DK : 87 Median : 3.000 Median : 5.00 12 : 59 ssc-MUT_ac-14_m-1_ccsl-gen : 36 Median : 89.0
BE : 81 Mean : 4.406 Mean :11.48 24 : 33 ssc-MUT_ac-14_m-3_ccsl-gen : 36 Mean : 261.3
NL : 81 3rd Qu.: 3.000 3rd Qu.:14.00 3 : 81 ssc-MUT_ac-26_m-12_ccsl-gen: 36 3rd Qu.: 260.0
FI : 79 Max. :12.000 Max. :39.00 gen:1075 ssc-MUT_ac-26_m-1_ccsl-gen : 36 Max. :8401.0
(Other) :841 (Other) :1131
churned churn_rate renew_rate month_churn log_month_churn weight
Min. : 1.00 Min. :0.007194 Min. :0.0000 Min. :0.003869 Min. :-5.555 Min. :4.330e-06
1st Qu.: 4.00 1st Qu.:0.109344 1st Qu.:0.6262 1st Qu.:0.036349 1st Qu.:-3.315 1st Qu.:1.232e-04
Median : 13.00 Median :0.200000 Median :0.8000 Median :0.072581 Median :-2.623 Median :5.420e-04
Mean : 63.52 Mean :0.279174 Mean :0.7208 Mean :0.166960 Mean :-2.482 Mean :1.481e-03
3rd Qu.: 46.00 3rd Qu.:0.373775 3rd Qu.:0.8907 3rd Qu.:0.160295 3rd Qu.:-1.831 3rd Qu.:1.472e-03
Max. :5317.00 Max. :1.000000 Max. :0.9928 Max. :1.000000 Max. : 0.000 Max. :5.028e-02
Calculate model
new_model=glm(log_month_churn ~ market_category + subscription_summary_no_market, data=churntable_no_zeros[churntable_no_zeros$set_type == 'training', ], weights = weight)
summary(new_model)
Call:
glm(formula = log_month_churn ~ market_category + subscription_summary_no_market,
data = churntable_no_zeros[churntable_no_zeros$set_type ==
"training", ], weights = weight)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.040657 -0.003222 0.000151 0.003451 0.027695
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -3.83989 0.22628 -16.970 < 2e-16 ***
market_categoryBE -0.32036 0.06157 -5.203 2.63e-07 ***
market_categoryCA 0.03502 0.06802 0.515 0.606820
market_categoryCH -0.31986 0.06400 -4.998 7.46e-07 ***
market_categoryDE -0.26244 0.07363 -3.564 0.000391 ***
market_categoryDK -0.34344 0.05092 -6.745 3.39e-11 ***
market_categoryES 0.01377 0.06067 0.227 0.820567
market_categoryFI -0.48036 0.06319 -7.602 1.03e-13 ***
market_categoryFR -0.10393 0.05245 -1.982 0.047944 *
market_categoryGB -0.06693 0.05311 -1.260 0.208071
market_categoryHighLTV -0.24680 0.06037 -4.088 4.89e-05 ***
market_categoryIT -0.01005 0.05928 -0.170 0.865417
market_categoryLowGeneric 0.20584 0.04922 4.182 3.29e-05 ***
market_categoryMediumLTV 0.13015 0.06289 2.069 0.038903 *
market_categoryNL -0.33667 0.05747 -5.858 7.44e-09 ***
market_categoryNO -0.29224 0.05271 -5.544 4.31e-08 ***
market_categorySE -0.24265 0.05520 -4.396 1.29e-05 ***
market_categoryUS 0.07331 0.05049 1.452 0.146959
subscription_summary_no_marketssc-MUT_ac-11_m-1_ccsl-gen 1.45713 0.22596 6.449 2.21e-10 ***
subscription_summary_no_marketssc-MUT_ac-11_m-3_ccsl-gen 1.26135 0.22400 5.631 2.67e-08 ***
subscription_summary_no_marketssc-MUT_ac-14_m-12_ccsl-gen 0.41518 0.23409 1.774 0.076598 .
subscription_summary_no_marketssc-MUT_ac-14_m-1_ccsl-gen 1.27776 0.22646 5.642 2.51e-08 ***
subscription_summary_no_marketssc-MUT_ac-14_m-3_ccsl-gen 1.15715 0.22451 5.154 3.39e-07 ***
subscription_summary_no_marketssc-MUT_ac-26_m-12_ccsl-gen 0.20456 0.22882 0.894 0.371659
subscription_summary_no_marketssc-MUT_ac-26_m-1_ccsl-gen 1.13388 0.22352 5.073 5.12e-07 ***
subscription_summary_no_marketssc-MUT_ac-26_m-3_ccsl-gen 0.90829 0.22254 4.081 5.03e-05 ***
subscription_summary_no_marketssc-MUT_ac-38_m-12_ccsl-gen 0.02720 0.22854 0.119 0.905286
subscription_summary_no_marketssc-MUT_ac-38_m-1_ccsl-gen 0.66673 0.22623 2.947 0.003323 **
subscription_summary_no_marketssc-MUT_ac-38_m-3_ccsl-gen 0.72334 0.22346 3.237 0.001270 **
subscription_summary_no_marketssc-MUT_ac-39_m-12_ccsl-gen -0.05753 0.22473 -0.256 0.798024
subscription_summary_no_marketssc-MUT_ac-39_m-1_ccsl-gen 0.35889 0.22308 1.609 0.108142
subscription_summary_no_marketssc-MUT_ac-39_m-3_ccsl-gen 0.31598 0.22275 1.419 0.156507
subscription_summary_no_marketssc-MUT_ac-8_m-12_ccsl-gen 0.37083 0.30425 1.219 0.223348
subscription_summary_no_marketssc-MUT_ac-8_m-1_ccsl-gen 1.55388 0.22554 6.890 1.33e-11 ***
subscription_summary_no_marketssc-MUT_ac-8_m-3_ccsl-gen 1.39414 0.22367 6.233 8.24e-10 ***
subscription_summary_no_marketssc-ORG_ac-0_m-12_ccsl-gen 0.66347 0.26956 2.461 0.014104 *
subscription_summary_no_marketssc-ORG_ac-0_m-1_ccsl-gen 2.82854 0.27342 10.345 < 2e-16 ***
subscription_summary_no_marketssc-ORG_ac-0_m-3_ccsl-gen 1.46641 0.23521 6.234 8.18e-10 ***
subscription_summary_no_marketssc-ORG_ac-1_m-12_ccsl-12 0.74514 0.95218 0.783 0.434169
subscription_summary_no_marketssc-ORG_ac-1_m-1_ccsl-1 2.65525 1.15554 2.298 0.021888 *
subscription_summary_no_marketssc-ORG_ac-1_m-1_ccsl--1 3.38939 2.27866 1.487 0.137383
subscription_summary_no_marketssc-ORG_ac-1_m-1_ccsl-3 3.09996 1.45141 2.136 0.033068 *
subscription_summary_no_marketssc-ORG_ac-1_m-3_ccsl--1 2.01439 1.86498 1.080 0.280493
subscription_summary_no_marketssc-ORG_ac-1_m-3_ccsl-3 1.66834 0.29758 5.606 3.06e-08 ***
subscription_summary_no_marketssc-ORG_ac-2_m-3_ccsl-gen 2.32230 1.61897 1.434 0.151932
subscription_summary_no_marketssc-ORG_ac-3_m-12_ccsl-gen 0.52768 0.46955 1.124 0.261517
subscription_summary_no_marketssc-ORG_ac-3_m-1_ccsl-gen 2.30774 0.78783 2.929 0.003518 **
subscription_summary_no_marketssc-ORG_ac-3_m-3_ccsl-gen 1.17758 0.24076 4.891 1.27e-06 ***
subscription_summary_no_marketssc-ORG_ac-5_m-12_ccsl-gen 0.77208 0.95242 0.811 0.417865
subscription_summary_no_marketssc-ORG_ac-5_m-1_ccsl-gen 2.08651 0.56566 3.689 0.000244 ***
subscription_summary_no_marketssc-ORG_ac-5_m-3_ccsl-gen 1.37975 0.32385 4.260 2.34e-05 ***
subscription_summary_no_marketssc-SS_ac-0_m-12_ccsl-1 0.75389 2.27854 0.331 0.740854
subscription_summary_no_marketssc-SS_ac-0_m-12_ccsl--1 3.60318 0.62602 5.756 1.33e-08 ***
subscription_summary_no_marketssc-SS_ac-0_m-12_ccsl-12 0.73677 0.35543 2.073 0.038578 *
subscription_summary_no_marketssc-SS_ac-0_m-1_ccsl-1 2.07397 0.22434 9.245 < 2e-16 ***
subscription_summary_no_marketssc-SS_ac-0_m-1_ccsl--1 3.85265 0.24688 15.606 < 2e-16 ***
subscription_summary_no_marketssc-SS_ac-0_m-1_ccsl-12 3.15795 0.22330 14.143 < 2e-16 ***
subscription_summary_no_marketssc-SS_ac-0_m-1_ccsl-24 3.43465 0.22826 15.047 < 2e-16 ***
subscription_summary_no_marketssc-SS_ac-0_m-1_ccsl-3 3.21954 0.22236 14.479 < 2e-16 ***
subscription_summary_no_marketssc-SS_ac-0_m-3_ccsl-1 1.06075 0.48948 2.167 0.030591 *
subscription_summary_no_marketssc-SS_ac-0_m-3_ccsl--1 3.17405 0.76852 4.130 4.10e-05 ***
subscription_summary_no_marketssc-SS_ac-0_m-3_ccsl-12 2.40750 0.50088 4.807 1.91e-06 ***
subscription_summary_no_marketssc-SS_ac-0_m-3_ccsl-24 2.94090 0.83188 3.535 0.000436 ***
subscription_summary_no_marketssc-SS_ac-0_m-3_ccsl-3 1.96579 0.28075 7.002 6.33e-12 ***
subscription_summary_no_marketssc-SS_ac-1_m-12_ccsl-gen 1.26089 0.22576 5.585 3.44e-08 ***
subscription_summary_no_marketssc-SS_ac-1_m-1_ccsl-gen 2.53295 0.22664 11.176 < 2e-16 ***
subscription_summary_no_marketssc-SS_ac-1_m-3_ccsl-gen 2.04830 0.22320 9.177 < 2e-16 ***
subscription_summary_no_marketssc-SS_ac-2_m-12_ccsl-gen 0.98453 1.15530 0.852 0.394426
subscription_summary_no_marketssc-SS_ac-2_m-1_ccsl-gen 2.11032 0.22883 9.222 < 2e-16 ***
subscription_summary_no_marketssc-SS_ac-2_m-3_ccsl-gen 2.57722 0.58563 4.401 1.26e-05 ***
subscription_summary_no_marketssc-SS_ac-3_m-12_ccsl-gen 1.02481 0.56541 1.813 0.070370 .
subscription_summary_no_marketssc-SS_ac-3_m-1_ccsl-gen 1.89554 0.23142 8.191 1.38e-15 ***
subscription_summary_no_marketssc-SS_ac-3_m-3_ccsl-gen 1.37624 0.29736 4.628 4.46e-06 ***
subscription_summary_no_marketssc-SS_ac-5_m-12_ccsl-gen 0.39500 0.30489 1.296 0.195582
subscription_summary_no_marketssc-SS_ac-5_m-1_ccsl-gen 1.76062 0.22620 7.783 2.80e-14 ***
subscription_summary_no_marketssc-SS_ac-5_m-3_ccsl-gen 1.59668 0.22387 7.132 2.65e-12 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for gaussian family taken to be 4.452684e-05)
Null deviance: 1.253106 on 723 degrees of freedom
Residual deviance: 0.028853 on 648 degrees of freedom
AIC: 632.38
Number of Fisher Scoring iterations: 2
anova(new_model, test="Chisq")
Analysis of Deviance Table
Model: gaussian, link: identity
Response: log_month_churn
Terms added sequentially (first to last)
Df Deviance Resid. Df Resid. Dev Pr(>Chi)
NULL 723 1.25311
market_category 17 0.39035 706 0.86276 < 2.2e-16 ***
subscription_summary_no_market 58 0.83390 648 0.02885 < 2.2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Validate
model_validation <- validation(subscriptions_with_target, new_model, predict_2fct_model)
model_validation$summary_table
model_validation$roc_plot
model_validation$calibration_plots
model_validation$real_churn_plot
Try simple logistic model
model_logit <- glm(churnind ~ market_category + siteverkey_cat2 + num_previous_months_binned + months + chosen_subs_length,
data = subscriptions_with_target[subscriptions_with_target$set_type == 'training',], family = 'binomial')
summary(model_logit)
Call:
glm(formula = churnind ~ market_category + siteverkey_cat2 +
num_previous_months_binned + months + chosen_subs_length,
family = "binomial", data = subscriptions_with_target[subscriptions_with_target$set_type ==
"training", ])
Deviance Residuals:
Min 1Q Median 3Q Max
-2.3404 -0.6803 -0.4575 -0.2925 2.5741
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.2193453 0.0517979 -42.846 < 2e-16 ***
market_categoryBE -0.2473653 0.0524459 -4.717 2.40e-06 ***
market_categoryCA 0.1111611 0.0543796 2.044 0.040937 *
market_categoryCH -0.3848481 0.0544353 -7.070 1.55e-12 ***
market_categoryDE -0.0924981 0.0594245 -1.557 0.119574
market_categoryDK -0.3327453 0.0429505 -7.747 9.40e-15 ***
market_categoryES 0.1523226 0.0482807 3.155 0.001605 **
market_categoryFI -0.4979859 0.0567620 -8.773 < 2e-16 ***
market_categoryFR -0.0917230 0.0430004 -2.133 0.032919 *
market_categoryGB -0.0046539 0.0434068 -0.107 0.914618
market_categoryHighLTV -0.2249732 0.0505262 -4.453 8.48e-06 ***
market_categoryIT 0.1773640 0.0465219 3.812 0.000138 ***
market_categoryLowGeneric 0.4091368 0.0398422 10.269 < 2e-16 ***
market_categoryMediumLTV 0.2275756 0.0494119 4.606 4.11e-06 ***
market_categoryNL -0.1310059 0.0478238 -2.739 0.006156 **
market_categoryNO -0.3524814 0.0452665 -7.787 6.87e-15 ***
market_categorySE -0.3034603 0.0474910 -6.390 1.66e-10 ***
market_categoryUS 0.2287022 0.0408544 5.598 2.17e-08 ***
siteverkey_cat2ORG -0.0844012 0.0437747 -1.928 0.053845 .
siteverkey_cat2SS 0.4394926 0.0200514 21.918 < 2e-16 ***
num_previous_months_binned -0.0324040 0.0007443 -43.536 < 2e-16 ***
months 0.1355959 0.0018096 74.931 < 2e-16 ***
chosen_subs_length-1 3.1279991 0.0864739 36.173 < 2e-16 ***
chosen_subs_length12 1.5784729 0.0340310 46.383 < 2e-16 ***
chosen_subs_length24 2.3311419 0.0473129 49.271 < 2e-16 ***
chosen_subs_length3 1.7088960 0.0312631 54.662 < 2e-16 ***
chosen_subs_lengthgen 0.5695083 0.0308393 18.467 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 256336 on 230984 degrees of freedom
Residual deviance: 212645 on 230958 degrees of freedom
AIC: 212699
Number of Fisher Scoring iterations: 5
Validate
model_validation_logit <- validation(subscriptions_with_target, model_logit)
model_validation_logit$summary_table
model_validation_logit$roc_plot
model_validation_logit$calibration_plots
model_validation_logit$real_churn_plot